// 知识点：string中的搜索函数，需要注意的是函数的返回值：string::size_type类型，找到时返回第一个匹配的下标位置，找不到时返回npos.，注意皆为unsigned类型
#include <forward_list>
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>

using namespace std;

int main(int argc, char **argv) {
  string s = "ab2c3d7R4E6";
  string number = "0123456789";
  unsigned pos = 0;
  //循环中我犯了一个错误，没有将pos=左右加括号，导致无线循环
  //注意有两个参数，从pos开始查找
  while ((pos = s.find_first_of(number, pos)) != string::npos) {
    cout << "在第" << pos + 1 << "个位置找到数字" << s[pos] << endl;
    ++pos;
  }
  pos = 0; //重新置零
  while ((pos = s.find_first_not_of(number, pos)) !=
         string::npos) //注意有两个参数，从pos开始查找
  {
    cout << "在第" << pos + 1 << "个位置找到英文字母" << s[pos] << endl;
    ++pos;
  }

  return 0;
}
